In digital television systems, a television is provided with a set-top-box to receive and decode a broadcast digital data stream which contains program information for display on the television. The broadcast digital data stream may arrive at the set-top-box via a satellite or cable system, via a digital terrestrial system, or via a disk or tape. A disk or tape, such as a CD ROM drive in a personal computer, may provide digital video information for display on a monitor.
There are various known standards for digital video broadcasting (DVB) and one now commonly used standard is the MPEG-2 standard.
In the MPEG-2 DVB standard data is encoded into transport packets. Each transport packet is defined by the standard as consisting of 188 bytes, comprising 4 header bytes and 184 payload bytes (“the data payload”). For transmission, the transport packets are time division multiplexed into a transport stream. At the receiver in the set-top-box, the transport stream is demultiplexed to recover the transport packets. optionally the transport packets may be scrambled and encoded with error correction information for transmission, and then descrambled and error-checked at the receiver.
The data payload in the transport packets is, according to the MPEG-2 standard, one of two types. The first type is known as a packetized elementary stream (PES), and the second type is known as program specific information (PSI).
The packetized elementary streams (PESs) form the video, audio and private data information of the broadcast. The MPEG-2 transport stream is made up of one or more PESs (either video, audio or private). The MPEG-2 transport stream is primarily intended for the transport of TV programs over long distances. This type of stream can combine, in the same multiplex, many programs, each of them being composed of one or more PESs. In order that the receiver can cope with this mix of program information, the MPEG-2 standard defines four types of tables, which together make up the MPEG-2 program specific information (PSI).
Each table of the PSI is made up of one or more sections, there being a maximum of 256 sections for each table. The MPEG-2 tables are defined in the standard, and include a program allocation table, a program map table, a conditional access table and private tables. The European DVB standard additionally defines complementary service information tables. The basic service information tables are the network information table, service description table, event information table, and time and date table. The optional service information tables are the bouquet association tables, running status tables, and stuffing tables. Each section includes an optional cyclic redundancy code (CRC) check.
A PES packet always starts at the beginning of the payload part of a transport packet and ends at the end of the transport packet. Sections, however, do not necessarily start at the beginning nor finish at the end of a transport packet. For a section, the transport packet can start with the end of another section.
At each decoder or set-top-box, the transport stream is decoded. To achieve the decoding of the transport stream, each set-top-box is provided with a transport interface, which provides an interface between the transport stream input to the box and the actual MPEG-2 decoders which decode the audio and video information and sections broadcasts.
The transport interface demultiplexes the transport stream to retain only those transport packets which are required by the particular set-top-box for decoding. The transport stream is a set of different services time division multiplexed, and the purpose of the transport interface is to demultiplex them. At a front input end of the transport interface, a time demultiplex function is performed to separate the transport stream into its component transport packets.
Each transport packet has associated therewith in its header a packet identifier (PID) which identifies the type of packet and various information associated with the data in the packets including the type of packet (PES or PSI). Each particular receiver or set-top-box is only interested in receiving packets having packet identifiers of interest to the particular set-top-box, for instance those associated with a particular television program selected for viewing. Thus once the incoming transport stream has been time demultiplexed to recover the transport packets, it is necessary to further demultiplex the transport packets to retain only those having packet identifiers required by the receiver.
The transport interface merely uses the header of PES transport packets to demultiplex them, and stores the data payload of the demultiplexed packets in the memory. The transport interface similarly demultiplexes PSI transport packets, but then filters the sections of the demultiplexed packets to retain only sections required by the receiver, before storing the filtered sections in the memory without any further processing.
Although the MPEG-2 DVB standard is one of the main digital video broadcast standards, there are variations within the standard. It is desirable to provide receivers having decoders which are generally as flexible possible not only to cope with variations in the standard but, if necessary, to enable the receiver to be used with a different standard.
It is therefore generally desirable to provide a single receiver which provides the flexibility of enabling different types of digital video broadcast standards to be used by utilizing a programmable transport interface. Utilizing such a receiver in a set-top-box may enable the set-top-box to be switched between two or more types of syntax format associated with different standards in situ.
There are known techniques for performing the demultiplexing of the time multiplexed MPEG-2 transport packets. One known technique is an application specific integrated circuit (ASIC) hardware implementation in which a dedicated hardware design parses the transport packets with no flexibility. That is the packet identifiers of the incoming transport packets are passed to a custom circuit block which detects whether the PID of the incoming transport packet matches any of the PIDs associated with a particular receiver. A major drawback of this hardware custom solution to the demultiplexing of transport packets is the lack of flexibility in syntax parsing. Although it is possible to select the PID numbers to be searched for in the custom circuit, it is not possible to alter the algorithm applied in the custom circuit once it has been set up. Thus, there is no flexibility to allow for the change in behavior of the receiver on the incoming digital data stream. This heavily reduces the lifetime of each chip, its range of applications, and its general ability to react to changes in standards or even requirements.
A second known technique for demultiplexing of MPEG-2 transport packets is that based on the main processor CPU of the receiver set-top-box, in which a program runs on the CPU for performing the demultiplex operation. Such an operation gives full flexibility of algorithms, with the PIDs associated with the receiver and to be searched for stored in the main processor CPUs memory. Thus, this gives full flexibility of algorithms in that the contents of the CPU main processor memory can be readily changed. However, this requires the main processor CPU to carry out itself directly the demultiplexer operation, which places a heavy load on the CPU. This limits the availability of the main processor CPU to perform other operations for running the set-top-box. As the amount of operations required to be performed by the set-top-box increases, together with the increasing complexity of those operations, this demand on the processing power of the main processor CPU becomes increasingly undesirable.